package com.dj.service;

import ca.uhn.fhir.rest.param.StringParam;
import org.hl7.fhir.dstu3.model.Encounter;
import org.hl7.fhir.dstu3.model.IdType;

import java.util.Date;
import java.util.List;

/**
 * 就诊操作
 * @author cyf
 * @description
 * @create 2018-06-27 13:38
 **/

public interface EncounterService {


    /**
     * 保存
     * @param encounter
     * @return
     */
    IdType saveEncounter(Encounter encounter);

    /**
     * 更新患者patient
     * @param id
     * @param encounter
     * @return
     */
    IdType updateEncounter(String id, Encounter encounter);

    /**
     * 根据id查询记录
     * @param id
     * @return
     */
    Encounter getByEncounterId(String id);


    /**
     * 根据id 和版本查询
     * @param id
     * @param version
     * @return
     */
    Encounter getByIdAndVersion(String id, String version);


    /**
     * 根据name 查询
     * @param patientName
     * @return
     */
    List<Encounter> getByPatientName(StringParam patientName);



    /**
     * 删除
     * @param id
     * @return
     */
    Boolean deleteEncounter(String id);

    /**
     * 查询当前就诊更新时间
     * @param id
     * @return
     */
    Date getLastUpdatTime(String id);

    /**
     * 查询历史就诊更新时间
     * @param id
     * @return
     */
    Date getHistoryLastUpdatTime(String id, String version);

    /**
     * 查询所有历史记录
     * @param id
     * @return
     */
    List<Encounter> getAllEncounterById(String id);

    Boolean isExist(String id);
}
